#pragma once

#include "IRenderable.h"

/**
*  Interface for plants
*  IRenderable
*  Contains declaration of methods, specific for plant entities
*/

class Ground;

class IPlant : public IRenderable
  {
  public:
    virtual ~IPlant() = 0 {}
    
    // puts plant into specific point on the ground
    virtual void Plant(double i_coord_x, double i_coord_y, double i_coord_z) = 0;

    virtual const TVector3& GetPosition() const override = 0;
    virtual std::string GetType() const override = 0;
    virtual std::string GetName() const override = 0;

    // additional logic methods may be added here
  };
